package tech.waterism.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import tech.waterism.entity.FCurveHq;
import tech.waterism.entity.FPInput;

import java.io.Serializable;
import java.util.List;

@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@ApiModel(value = "水文模型预报方案输入Dto")
public class FPInputDto extends FPInput implements Serializable {

    /**
     * 测站编号
     */
    @ApiModelProperty(value = "测站编号")
    private String pstcd;

    /**
     * 输入测站编号
     */
    @ApiModelProperty(value = "输入测站编号")
    private String parcd;

    /**
     * 方案输入名称
     */
    @ApiModelProperty(value = "方案输入名称")
    private String arnm;

    /**
     * 模型列表
     */
    @ApiModelProperty(value = "模型列表")
    private List<FMIndexDto> mdcdList;

    /**
     * 站点数据
     */
    @ApiModelProperty(value = "站点数据")
    private StDataDto stData;

    /**
     * 预报数据
     */
    @ApiModelProperty(value = "预报数据")
    private List<ForecastDataDto> data;

    /**
     * 构造方式（G—按INDEX给定；R—INPUTS内容替换；C—合并INPUTS；N—维持当前构造）
     */
    @ApiModelProperty(value = "构造方式（G—按INDEX给定；R—INPUTS内容替换；C—合并INPUTS；N—维持当前构造）")
    private String method;

    @ApiModelProperty(value = "支持根据水位推求流量")
    private Boolean reverseAllowed;
    /**
     * 输入经度
     */
    @ApiModelProperty(value = "输入经度")
    private Double arlgtd;

    /**
     * 输入纬度
     */
    @ApiModelProperty(value = "输入纬度")
    private Double arlttd;

    @ApiModelProperty(value = "雨强信息")
    private RainIntensityDto i0;

    @ApiModelProperty("是否点源入流--用于一维水动力")
    private Boolean pointStream;

    @ApiModelProperty("预报系统专用----是否考虑分洪")
    private Boolean qDvrIsExist;
    @ApiModelProperty("预报系统专用----是否考虑排洪")
    private Boolean qDscIsExist;

    /**
     * 曲线名称
     */
    @ApiModelProperty(value = "曲线名称")
    private String arlnnm;

    /**
     * 水位流量关系曲线
     */
    @ApiModelProperty(value = "水位流量关系曲线")
    private List<FCurveHq> arCurveHq;

    /**
     * 取水口
     */
    @ApiModelProperty(value = "取水口")
    private List<FPIntakeDto> intakes;
}
